import { createLogger } from './Logger.js';

/**
 * 处理时间配置，返回 Cron 表达式和时间间隔类型
 * @param {string|number} timeConfig - 时间配置，可以是分钟或小时的配置
 * @param {string} pluginName - 插件名称，用于日志输出
 * @returns {object} - 返回 Cron 表达式和时间间隔类型
 */
export function handleTimeConfig(timeConfig, pluginName) {
    // 创建日志实例
    const logger = createLogger(pluginName);

//    logger.info(`加载的时间配置：${timeConfig}`);

    let cronExpression = '';
    let intervalType = '';
    let timeValue = null;

    if (typeof timeConfig === 'string' && timeConfig.startsWith('s')) {
        // 处理小时配置
        const hours = parseInt(timeConfig.substring(1));  // 提取数字部分作为小时
        cronExpression = `0 */${hours} * * *`;  // 每 N 小时执行一次（0 分钟）
        intervalType = '小时';
        timeValue = hours;
    //    logger.info(`任务间隔: 每 ${timeValue} 小时执行一次。`);
    } else if (typeof timeConfig === 'number') {
        // 处理分钟配置
        timeValue = timeConfig;
        cronExpression = `*/${timeValue} * * * *`;  // 每 N 分钟执行一次
        intervalType = '分钟';
    //    logger.info(`任务间隔: 每 ${timeValue} 分钟执行一次。`);
    } else {
    //    logger.error(`配置无效：${timeConfig}`);
        throw new Error(`无效的时间配置：${timeConfig}`);
    }

    return { cronExpression, intervalType, timeValue };
}